home *** CD-ROM | disk | FTP | other *** search
- // =========================================================================
- /* VMENU2.H
- ** (C) Anubis Software
- ** Escrito el 15 de Septiembre de 1994
- ** Ultima actualización 11 de Noviembre de 1994
- ** Revisado para eventos el 29 de Septiembre de 1995
- **
- ** Esta libreria, proporciona un interface para poner menus en la pantalla,
- ** Los menus de presiana devuelven un código predeterminado según la opción
- ** que se haga en ellos.
- */
- // ==========================================================================
-
- #ifndef VMENU2.H
- #define VMENU2.H
-
- // NOTAS:
- // ------
- // 1.- Para usar esta librería, es imprescindible inicializar e instalar
- // la interrupción de gestión del ratón (Anubis Mouse Gestión) con la función
- // InitMouse() de la librería MOUSE.H
- // 2.- Es necesario, por gestión propia de la biblioteca, que los valores
- // que identifican a cada item de menu, empiecen a numerarse a partir de un
- // valor alto, que por definición se fijará como 10. Es decir, no usar
- // identificadores menores que diez.
-
-
-
- // ------------------------------------+
- // Inclusión de librerias Borland C++. |
- // ------------------------------------+
- #include <dos.h>
- #include <mem.h>
- #include <string.h>
-
- // ---------------------------------------------------------+
- // Inclusión de librerias Anubis Software (Anubis Librarys) |
- // ---------------------------------------------------------+
- #include "mdefs.h"
- #include "tecexec.h"
- #include "textmode.h"
- #include "tecbuf.h"
- #include "scancode.h"
- #include "ventana2.h"
-
- // -----------------------------------------------------+
- // Definición de constantes utilizadas por la librería. |
- // -----------------------------------------------------+
- // Utilizadas en la devolución de identificadores por evnt_menuitem
- #define DERECHA 1
- #define IZQUIERDA 2
- // Definición de los atributos de cada menu_item
- #define MENU_NORMAL 1
- #define MENU_NO_SELECCIONABLE 2
- #define MENU_ACTIVABLE 4
- #define MENU_ACTIVADO 8
- #define MENU_REVERSO 0
- #define MENU_NORMAL 1
-
- // -------------------------------------------+
- // Definición de tipos de la estructura menu. |
- // -------------------------------------------+
- typedef struct MENU_BAR_ITEM {
- char nombre[15];
- struct MENU_BAR_ITEM *siguiente;
- struct ELECTION_WINDOW *desplegable;
- BYTE caracteristicas;
- BYTE posx,
- posy,
- longitud,
- posxl;
- BYTE color_fondo,
- color_texto,
- color_letra,
- color_seleccionado;
- char letra_activacion;
- WORD tecla;
- } menu_bar_item;
-
- typedef struct ELECTION_WINDOW {
- char nombre[15],
- ai,
- ad,
- abi,
- abd,
- horizontal,
- vertical;
- BYTE caracteristicas;
- struct MENU_ITEM *item;
- BYTE posx,
- posy,
- longitud,
- ancho;
- BYTE color_fondo,
- color_texto,
- color_letra,
- color_seleccionado;
- } election_window;
-
- typedef struct MENU_ITEM {
- char nombre[50];
- BYTE caracteristicas;
- char letra_activacion;
- struct MENU_ITEM *siguiente;
- struct ELECTION_WINDOW *submenu;
- BYTE color_texto,
- color_letra,
- color_seleccionado,
- color_fondo,
- code_return,
- posxl;
- } menu_item;
-
- typedef struct MENUS {
- char nombre[15];
- menu_bar_item *menu;
- BYTE caracteristicas;
- char letra_activacion;
- BYTE posx,
- posy;
- BYTE color_texto,
- color_fondo,
- color_seleccionado,
- color_letra;
- } menu_bar;
-
- // ---------------------------------------+
- // Declaración de variables globales |
- // ---------------------------------------+
- extern menu_bar *EventMenuBar;
-
- // --------------------------------------------------------+
- // Declaración e implementación de las funciones del menu. |
- // --------------------------------------------------------+
- void dibujar_menu_bar(menu_bar );
- void dibujar_eleccion_window (election_window );
- void MenuBarItemEstado(menu_bar_item *,char );
- int evntmenuitem(election_window );
- int evntmenu (void);
- void escribe_submenus(election_window *,FILE *);
- void guardar_menu(char *, menu_bar );
- void lee_submenus(menu_item *,FILE *);
- void cargar_menu(char *,menu_bar *);
- #endif
-